// 云对象教程: https://uniapp.dcloud.net.cn/uniCloud/cloud-obj
// jsdoc语法提示教程：https://ask.dcloud.net.cn/docs/#//ask.dcloud.net.cn/article/129
const global = uniCloud.importObject("global",{customUI:true});
const collectionName = "shop" ;
module.exports = {
	_before: function () { // 通用预处理器

	},
	/**
	 * 新增方法
	 * @param data 要插入的数据
	 * @returns {object} 返回classify表内容
	 */
	async addData(data) {
		if(!data ) return { errCode:'PARAM_IS_NULL', errMsg:'参数不能为空'} ;
		try{
			data.technician = parseInt(data.technician);
			data.order = parseInt(data.order);
			data.comment.number = parseInt(data.comment.number);
			data.score.grade = parseInt(data.score.grade);
			data.score.hao_score_total = parseInt(data.score.hao_score_total);
			data.score.score_total = parseInt(data.score.score_total);
			
			const result = await global.addData(collectionName,data);
			return {code:200,message:'添加成功',result} ;
		}catch(error){
			// 返回结果
			return {message:'内部错误',error }
		}
	},
	/**
	 * 作用：获取单条数据
	 * @param where {string/object} 主表条件
	 * @param field {string} 要查询的主表字段
	 * @param collTable {string} 关联表名
	 * @param collTableField {string} 副标查询的字段
	 * @param collTableIsGetOne {bool} 副标是否也查询单条
	 * @returns {object},数组在res.data中
	 */
	async getDataOne(where={},field,collTable=false,collTableField=null,collTableIsGetOne=true){
		try{
			const result = await global.getOne(collectionName,where,field,collTable,collTableField,collTableIsGetOne);
			return {code:200,message:'获取成功',result} ;
		}catch(error){
			// 返回结果
			return {message:'内部错误',error }
		}
	},
	/**
	 * 修改数据
	 * @param data 要修改的数据
	 * @param where  修改条件
	 * @returns {object} 返回classify表内容
	 */
	async updateData(data,where) {
		// 参数校验，如无参数则不需要
		if (!data,!where) return {errCode: 'PARAM_IS_NULL',errMsg: '参数不能为空'} ;
		const db = uniCloud.database() ;
		try{
			data.technician = parseInt(data.technician);
			data.order = parseInt(data.order);
			data.comment.number = parseInt(data.comment.number);
			data.score.grade = parseInt(data.score.grade);
			data.score.hao_score_total = parseInt(data.score.hao_score_total);
			data.score.score_total = parseInt(data.score.score_total);
			delete data._id ; // 删除_id
			const result = await db.collection(collectionName).where(where).update(data) ;
			// 返回结果
			return {code:200,message:"修改成功",result:result}
		}catch(error){
			// 返回结果
			return {message:'内部错误',error }
		}
	},
	/**
	 * 删除Classify数据
	 * @param uid String 数据的_id 
	 * @param images String[] 要删除的图片数组字符串 
	 * @returns {object} 返回classify删除成功
	 */
	async deleteData(uid,images) {
		// 参数校验，如无参数则不需要
		if (!uid) return {errCode: 'PARAM_IS_NULL',errMsg: '缺少参数'} ;
		const db = uniCloud.databaseForJQL() ;
		try{
			if(images.length > 0) uniCloud.deleteFile({ fileList:images}).finally(()=>{ } ) ;
			const data = await db.collection(collectionName).doc(uid).remove() ;
			// 返回结果
			return { code:200,message:"删除成功",result:data }
		}catch(error){
			// 返回结果
			return {message:'内部错误',error }
		}
	},
}
